package net.ericaro.neojavagen.expressions ;
import net.ericaro.neojavagen.types.TypeArguments;
import net.ericaro.neojavagen.classes.ClassBody;
import net.ericaro.neojavagen.types.ClassOrInterfaceType;
import net.ericaro.neojavagen.expressions.Arguments;
import net.ericaro.neojavagen.expressions.ClassInstanceCreationExpression ;

/**
* *<pre> NormalClassInstanceCreationExpression :
    new TypeArguments? ClassOrInterfaceType ( Arguments? ) ClassBody?
</pre>
*/
public class NormalClassInstanceCreationExpression  implements ClassInstanceCreationExpression {

TypeArguments typearguments;
ClassOrInterfaceType classorinterfacetype;
Arguments arguments;
ClassBody classbody ;

public NormalClassInstanceCreationExpression( TypeArguments typearguments, ClassOrInterfaceType classorinterfacetype, Arguments arguments, ClassBody classbody ){
	this.typearguments = typearguments; this.classorinterfacetype = classorinterfacetype; this.arguments = arguments; this.classbody = classbody ;
	}public NormalClassInstanceCreationExpression( ClassOrInterfaceType classorinterfacetype ){
this.classorinterfacetype = classorinterfacetype ;
}


public String toString(){
	StringBuilder stringbuilder = new StringBuilder();
	stringbuilder.append( "new" ).append(" ");
if (this.typearguments !=null ) stringbuilder.append( this.typearguments ).append(" ");
stringbuilder.append( this.classorinterfacetype ).append(" ");
stringbuilder.append( "(" ).append(" ");
if (this.arguments !=null ) stringbuilder.append( this.arguments ).append(" ");
stringbuilder.append( ")" ).append(" ");
if (this.classbody !=null ) stringbuilder.append( this.classbody ).append(" ") ;
	return stringbuilder.toString();
}

}
